package gocache

// byteview用来表示缓存值

type ByteView struct {
	b []byte
}

// b会存储真实的缓存值 类型是byte是为了支持任意类型数据的存储

// Len 返回ByteView的长度
func (v ByteView) Len() int {
	return len(v.b)
}

// ByteSlice 将数据作为字节切片的形式返回
func (v ByteView) ByteSlice() []byte {
	return cloneBytes(v.b)
}

// String 将数据作为字符串返回
func (v ByteView) String() string {
	return string(v.b)
}

func cloneBytes(b []byte) []byte {
	c := make([]byte, len(b))
	copy(c, b)
	return c
}
